Motors that drive robot arms through acceleration and deceleration (hereinafter referred to "A & D") have been controlled so that the robot arms operate smoothly free from shocks. Necessary time for A & D is determined by factors such as load applied to a motor, motor inertia, motor torque and a motor speed. Some fixed value calculated from a minimum or a maximum load inertia is thus utilized as an acceleration time. However, a robot changes its posture through operation, which accompanies changes of load and gravity torque applied to the robot. And yet, the robot arms are still requested to operate smoothly even with a shorter moving time by overcoming these changes. For this purpose, Japanese Patent Application unexamined Publication No. H05-46234 discloses a method for changing A & D process responsive to load inertia.
FIG. 16 depicts this conventional structure of A & D process, which is now discussed hereinafter by referring to FIG. 16. First, the position data of the robot arm tip obtained from a position teaching section 6 is divided into move data per sample period by an interpolation calculator 7. At this time, the move data is processed by an A & D processor 8 so that A & D can be operated. Prior to the A & D process, a load inertia responsive to a posture stored in a load inertia parameter storage 29 is selected according to the tip position data of the robot arm tip. Necessary time for A & D operation is calculated in an A & D time calculator 13 by using the load inertia value. The move data, calculated in the interpolation calculator 7 and undergone A & D processor 8 based on the A & D operation time calculated in the A & D time calculator 13, is given into a position controllers 9 and 10, whereby motors 1 and 2 are controlled.
In addition, a filter circuit that performs A & D process with a simple structure is disclosed in Japanese Patent Application unexamined Publication No. S59-90107. This prior art relates to FIR (finite impulse response) filter having a low pass characteristic. This FIR filter performs A & D process using a shift register having N steps (N=natural number). FIG. 17 depicts this A & D process with the shift register having four steps. A move command generator 15 generates a move command for driving the motor 1 to move the robot arm. The A & D processor 8 comprises; (a) registers 100-102, (b) multipliers 200-203 and (c) adders 300-302, and these elements constitute a four-step-FIR-filter having the low pass characteristic. The move command is fed into the A & D processor 8 from a move command generator 15. The move command value fed into the A & D processor 8 shifts through the registers 100-102 one by one for each sample period. The multipliers 200-203 are coupled with input sides of each register and the output side of the multiplier 203 (the final step), whereby the move command value that shifts one by one is multiplied by a coefficient in the multipliers 200-203. Outputs from the multipliers 200-203 are added one after another by the adders 300-302. The coefficients used in the multiplication sum up to 1 (one), and the total output added by the adders 300-302 agrees with a total of input move command values.
A move command is given to the A & D processor with a four-step-shift-register in FIG. 17. An operation of this example is described by referring to FIG. 18. The move command value (100 pulses) is fed into each sample period (t1-t6), and another command value (60 pulses) is fed into other respective sample periods (t11-t16). Each coefficient of the multipliers 200-203 is assigned to 1/4 so that the total of all the coefficients is 1 (one). Accordingly, in the sample period t1, a move value (25 pulses, i.e., 100 pulses.times.1/4) is tapped off after running through the adders 300-302. In the sample period t2, the move command value is shifted by the shift register and fed into the multiplier 201 where the command value is multiplied by 1/4. The outputs from the multipliers 200 and 201 are added in the adders 300 through 302, and 50 pulses are supplied. In the same manner, the output from the multiplier 202 is added in the sample period t3, thereby outputting 75 pulses. In the sample period t4, the output from the multiplier 203 is also added, then 100 pulses are supplied. As a result, 100% output is obtained in the sample period t4. Therefore, an acceleration time is found in multiplying one sample time by a number of steps of the shift register (in this case "4").
In the sample period t7, no input to the multiplier 200 results in no output therefrom, and the adder 302 thus outputs 75 pulses. In the same manner, in the sample period t8, no output from the multiplier 201 results from no input thereto, and the adder 302 thus outputs 50 pulses. In the sample period t10, no input at all to the multipliers 200-203 results in no output from the adder 302. Since 0% output is obtained from the sample period t10, a deceleration time is found in multiplying one sample time by a number of steps of the shift register.
The operation for the sample periods t11 through t20 is the same as that for t1 through t10 except the move command value (60 pulses instead of 100 pulses), the description is thus omitted here.
However, the above A & D process performed by the controller and filter still leaves some problems.
In the A & D process by the conventional controller, the time necessary for A & D is determined by considering only load inertia relative to a posture change of the robot. However, a time of A & D necessary for a smooth operation should be determined by not only load inertia but also motor inertia and motor torque. A change of robot posture also accompanies a change of gravity torque by great amount. This gravity torque corresponds to a loss portion of the motor torque. In the conventional A & D process, only load inertia due to a posture change of the robot has been taken into account. The time of A & D has been thus determined by considering the maximum change of the gravity torque, or that has been determined by neglecting this change in the case that the robots have small changes in gravity torque. As such, a longer time than an optimum A & D time has been established for the robots having great changes in gravity torque, which has prevented robots from operating at a higher speed.
The conventional FIR filter cannot change a cut-off frequency under a condition of maintaining the agreement of a total number of input pulses with a total number of output pulses.
In the A & D process using the conventional filter, the A & D time is determined by a number of shift register steps only, and then coefficients are determined so that they sum up to 1 (one), whereby an input of the move command value can be equal to that of output. If a number of shift register steps are changed after the move command is fed to the filter circuit, the input total of move command values hardly does agree with that of the output. A change of the number of shift registers during the robot operation would cause errors in the command values fed into motors, which prevents an accurate positioning.
As such, the A & D process with the conventional filter does not allow the A & D time to be changed because the cut-off frequency is fixed. It is impossible therefore to always set an optimum A & D time responsive to a posture change of a robot. As a result, an optimum performance at a high speed has not been realized so far.